package com.app.sgd.controller.action;

import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.log4j.Logger;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;

import com.app.sgd.business.dao.SQLDocumentoDAO;
import com.app.sgd.business.dao.SQLExpedienteSTDDAO;
import com.app.sgd.business.facade.VariablesFacade;
import com.app.sgd.manager.SGDDispatchAction;
import com.app.sgd.model.bean.Documento;
import com.app.sgd.model.bean.ExpedienteSTDBean;
import com.app.sgd.model.bean.Usuario;
import com.app.sgd.util.Constants;
import com.app.sgd.util.SessionConstants;
import com.app.sgd.util.Util;
import com.app.sgd.view.actionform.AdministracionDocumentoForm;
import com.app.sgd.view.vo.FiltroBusquedaVO;
import com.app.sgd.view.vo.RespuestaVO;

public class ExpedienteSTDAction extends SGDDispatchAction{
	private static Logger logger = Logger.getLogger(ExpedienteSTDAction.class);
	
	public void resetBusqueda(ActionForm form, HttpServletRequest request){
		AdministracionDocumentoForm formdoc = (AdministracionDocumentoForm)form;
		formdoc.setNumExpedienteBusq("");
		formdoc.setCodOficinaBusq(Constants.VALOR_DEFAULT_CERO);
		formdoc.setFechaFin(new String());
		formdoc.setFechaInicio(new String());
		formdoc.setTipoBandejaBusqueda("T");
		request.getSession().removeAttribute(SessionConstants.LISTA_EXPEDIENTES_MOSTRAR);
	}
	
	public void reset(ActionForm form, HttpServletRequest request){
		AdministracionDocumentoForm formdoc = (AdministracionDocumentoForm)form;
		formdoc.setCodigoExpediente(0L);
		formdoc.setNumeroExpediente("");
		formdoc.setFechaExpediente("");
		formdoc.setCodigoOficina("0");
		formdoc.setCodigoEstado("0");
		formdoc.setAsuntoExpediente("");
	}
	
	public ActionForward listadoExpedientesSTD(ActionMapping mapping, ActionForm form,
			HttpServletRequest request, HttpServletResponse response) throws Exception {
		try{
			resetBusqueda(form,request);
			VariablesFacade variablesFacade = new VariablesFacade();
			ArrayList lstUnidadOrigen = variablesFacade.getOficina();
			request.getSession().setAttribute(SessionConstants.LISTA_CONSULTAS_OFICINAS, lstUnidadOrigen);
			
			Usuario usuarioLogin = (Usuario)request.getSession().getAttribute(SessionConstants.SGD_USUARIO_SESION_ACTIVO);
			AdministracionDocumentoForm formdoc = (AdministracionDocumentoForm)form;
			
			long fechFin = (new java.util.Date()).getTime();
			long fechIni = fechFin - Constants.FACTOR_FECHA * (Integer.parseInt(Constants.DIAS_MOSTRAR_ULTIMOS_DOCUMENTOS));
			
			formdoc.setFechaInicio(Util.getDateAsStr(new Date(fechIni)));
			formdoc.setFechaFin(Util.getDateAsStr(new Date(fechFin)));
			formdoc.setCodOficinaBusq(usuarioLogin.getEncargaturaPerfil().getCodArea());
			formdoc.setNumExpedienteBusq("");
			formdoc.setCodTipoEstadoBusq("0");
			
			FiltroBusquedaVO filtroBusquedaVO = new FiltroBusquedaVO();
			filtroBusquedaVO.setNumeroExpediente(formdoc.getNumExpedienteBusq());
			filtroBusquedaVO.setCodOficina(formdoc.getCodOficinaBusq());
			filtroBusquedaVO.setFechaInicio(formdoc.getFechaInicio());
			filtroBusquedaVO.setFechaFin(formdoc.getFechaFin());
			filtroBusquedaVO.setCodEstado(formdoc.getCodTipoEstadoBusq());
			filtroBusquedaVO.setUsuario(usuarioLogin);
			filtroBusquedaVO.setTipoBandejaBusqueda(formdoc.getTipoBandejaBusqueda());
			if(usuarioLogin.isPrivilegioAdministrador() || usuarioLogin.isPrivilegioUsuarioGlobal()){
				filtroBusquedaVO.setTipoBusqueda(Constants.BUSQUEDA_GLOBAL);
			}
			else{
				if(usuarioLogin.isPrivilegioJefeUnidadOrganica()){
					filtroBusquedaVO.setTipoBusqueda(Constants.BUSQUEDA_AREA);
				}
				else{
					filtroBusquedaVO.setTipoBusqueda(Constants.BUSQUEDA_PERSONAL);
				}
			}
			
			SQLExpedienteSTDDAO sqlExpedienteSTDDAO = new SQLExpedienteSTDDAO();
			ArrayList<ExpedienteSTDBean> lstExpedientes = sqlExpedienteSTDDAO.listarExpedientes(filtroBusquedaVO);
			request.getSession().setAttribute(SessionConstants.LISTA_EXPEDIENTES_MOSTRAR, lstExpedientes);
			
			return mapping.findForward("listadoExpedientesSTD");
		}catch(Exception e){
			logger.error("[STD]: Error en listadoExpedientesSTD "+e.getMessage());
			e.printStackTrace();
			return mapping.findForward("error");
		}
	}
	
	public ActionForward buscarExpedientesSTD(ActionMapping mapping, ActionForm form,
			HttpServletRequest request, HttpServletResponse response) throws Exception {
		try{
			request.getSession().removeAttribute(SessionConstants.LISTA_EXPEDIENTES_MOSTRAR);
			Usuario usuarioLogin = (Usuario)request.getSession().getAttribute(SessionConstants.SGD_USUARIO_SESION_ACTIVO);
			
			AdministracionDocumentoForm formdoc = (AdministracionDocumentoForm)form;
			SQLExpedienteSTDDAO sqlExpedienteSTDDAO = new SQLExpedienteSTDDAO();
			
			FiltroBusquedaVO filtroBusquedaVO = new FiltroBusquedaVO();
			filtroBusquedaVO.setNumeroExpediente(formdoc.getNumExpedienteBusq());
			filtroBusquedaVO.setCodOficina(formdoc.getCodOficinaBusq());
			filtroBusquedaVO.setFechaInicio(formdoc.getFechaInicio());
			filtroBusquedaVO.setFechaFin(formdoc.getFechaFin());
			filtroBusquedaVO.setCodEstado(formdoc.getCodTipoEstadoBusq());
			filtroBusquedaVO.setUsuario(usuarioLogin);
			filtroBusquedaVO.setTipoBandejaBusqueda(formdoc.getTipoBandejaBusqueda());
			if(usuarioLogin.isPrivilegioAdministrador() || usuarioLogin.isPrivilegioUsuarioGlobal()){
				filtroBusquedaVO.setTipoBusqueda(Constants.BUSQUEDA_GLOBAL);
			}
			else{
				if(usuarioLogin.isPrivilegioJefeUnidadOrganica()){
					filtroBusquedaVO.setTipoBusqueda(Constants.BUSQUEDA_AREA);
				}
				else{
					filtroBusquedaVO.setTipoBusqueda(Constants.BUSQUEDA_PERSONAL);
				}
			}
			
			ArrayList<ExpedienteSTDBean> lstExpedientes = sqlExpedienteSTDDAO.listarExpedientes(filtroBusquedaVO);
			
			request.getSession().setAttribute(SessionConstants.LISTA_EXPEDIENTES_MOSTRAR, lstExpedientes);
			
			return mapping.findForward("listadoExpedientesSTD");
		}catch(Exception e){
			logger.error("[STD]: Error en buscarExpedientesSTD "+e.getMessage());
			e.printStackTrace();
			return mapping.findForward("error");
		}
	}
	
	public ActionForward nuevoExpediente(ActionMapping mapping, ActionForm form,
			HttpServletRequest request, HttpServletResponse response) throws Exception {
		
		reset(form,request);
		
		AdministracionDocumentoForm formdoc = (AdministracionDocumentoForm)form;
		Usuario usuarioLogin = (Usuario)request.getSession().getAttribute(SessionConstants.SGD_USUARIO_SESION_ACTIVO);
		formdoc.setCodigoExpediente(0L);
		formdoc.setFechaExpediente(Util.getDateAsStr(new Date()));
		formdoc.setCodigoOficina(usuarioLogin.getEncargaturaPerfil().getCodArea());
		formdoc.setCodigoEstado(Constants.ESTADO_EXPEDIENTE_ABIERTO);
		
		return mapping.findForward("nuevoExpediente");
	}
	
	public ActionForward editarExpediente(ActionMapping mapping, ActionForm form,
			HttpServletRequest request, HttpServletResponse response) throws Exception {
		
		reset(form,request);

		Usuario usuarioLogin = (Usuario)request.getSession().getAttribute(SessionConstants.SGD_USUARIO_SESION_ACTIVO);
		AdministracionDocumentoForm formdoc = (AdministracionDocumentoForm)form;
		
		String index = request.getParameter("index");
		ArrayList<ExpedienteSTDBean> lstExpediente = (ArrayList<ExpedienteSTDBean>)request.getSession().getAttribute(SessionConstants.LISTA_EXPEDIENTES_MOSTRAR);
		ExpedienteSTDBean expedienteSTDBean = (ExpedienteSTDBean) lstExpediente.get(Integer.parseInt(index));
		
		formdoc.setCodigoExpediente(expedienteSTDBean.getCodigoExpediente());
		formdoc.setFechaExpediente(expedienteSTDBean.getFechaExpediente());
		formdoc.setCodigoOficina(expedienteSTDBean.getCodigoOficina());
		formdoc.setCodigoEstado(expedienteSTDBean.getCodigoEstado());
		formdoc.setAsuntoExpediente(expedienteSTDBean.getAsuntoExpediente());
		formdoc.setNumeroExpediente(expedienteSTDBean.getNumeroExpediente());
		
		return mapping.findForward("edicionExpediente");
	}
	
	public ActionForward regresarListadoExpedientes(ActionMapping mapping, ActionForm form,
			HttpServletRequest request, HttpServletResponse response) throws Exception {
		request.getSession().removeAttribute(SessionConstants.EXPEDIENTE_EDITADO);
		request.getSession().removeAttribute(SessionConstants.LISTA_DOCUMENTOS_MOSTRAR);
		
		request.getSession().removeAttribute(SessionConstants.LISTA_EXPEDIENTES_MOSTRAR);
		Usuario usuarioLogin = (Usuario)request.getSession().getAttribute(SessionConstants.SGD_USUARIO_SESION_ACTIVO);
		
		AdministracionDocumentoForm formdoc = (AdministracionDocumentoForm)form;
		SQLExpedienteSTDDAO sqlExpedienteSTDDAO = new SQLExpedienteSTDDAO();
		
		FiltroBusquedaVO filtroBusquedaVO = new FiltroBusquedaVO();
		filtroBusquedaVO.setNumeroExpediente(formdoc.getNumExpedienteBusq());
		filtroBusquedaVO.setCodOficina(formdoc.getCodOficinaBusq());
		filtroBusquedaVO.setFechaInicio(formdoc.getFechaInicio());
		filtroBusquedaVO.setFechaFin(formdoc.getFechaFin());
		filtroBusquedaVO.setCodEstado(formdoc.getCodTipoEstadoBusq());
		filtroBusquedaVO.setUsuario(usuarioLogin);
		filtroBusquedaVO.setTipoBandejaBusqueda(formdoc.getTipoBandejaBusqueda());
		if(usuarioLogin.isPrivilegioAdministrador() || usuarioLogin.isPrivilegioUsuarioGlobal()){
			filtroBusquedaVO.setTipoBusqueda(Constants.BUSQUEDA_GLOBAL);
		}
		else{
			if(usuarioLogin.isPrivilegioJefeUnidadOrganica()){
				filtroBusquedaVO.setTipoBusqueda(Constants.BUSQUEDA_AREA);
			}
			else{
				filtroBusquedaVO.setTipoBusqueda(Constants.BUSQUEDA_PERSONAL);
			}
		}
		
		ArrayList<ExpedienteSTDBean> lstExpedientes = sqlExpedienteSTDDAO.listarExpedientes(filtroBusquedaVO);
		
		request.getSession().setAttribute(SessionConstants.LISTA_EXPEDIENTES_MOSTRAR, lstExpedientes);
		
		return mapping.findForward("listadoExpedientesSTD");
	}
	
	public ActionForward siguiente(ActionMapping mapping, ActionForm form,
			HttpServletRequest request, HttpServletResponse response) throws Exception {
		return mapping.findForward("listadoExpedientesSTD");
	}
	
	public ActionForward listarDocumentos(ActionMapping mapping, ActionForm form,
			HttpServletRequest request, HttpServletResponse response) throws Exception {
		
		String index = request.getParameter("index");
		
		List<ExpedienteSTDBean> lstExpediente = (ArrayList<ExpedienteSTDBean>)request.getSession().getAttribute(SessionConstants.LISTA_EXPEDIENTES_MOSTRAR);
		ExpedienteSTDBean expedienteSTDBean = (ExpedienteSTDBean) lstExpediente.get(Integer.parseInt(index));
		
		AdministracionDocumentoForm formdoc = (AdministracionDocumentoForm)form;
		formdoc.setCodTipoVista(Constants.VISTA_EXPEDIENTE_DOCUMENTOS_ASOCIADOS);
		formdoc.setCodigoExpediente(expedienteSTDBean.getCodigoExpediente());
		formdoc.setNumeroExpediente(expedienteSTDBean.getNumeroExpediente());
		
		SQLDocumentoDAO sqlDocumentoDAO = new SQLDocumentoDAO();
		List<Documento> lstDocumentos = sqlDocumentoDAO.listarDocumentosExpediente(expedienteSTDBean);
		
		request.getSession().setAttribute(SessionConstants.LISTA_DOCUMENTOS_MOSTRAR, lstDocumentos);
		
		if(expedienteSTDBean.getTotalDocumentos()>0){
			formdoc.setDocumentosPorEnviarOcultos(expedienteSTDBean.getTotalDocumentos()-lstDocumentos.size());
		}
		else{
			formdoc.setDocumentosPorEnviarOcultos(0);
		}
		
		return mapping.findForward("listadoDocumentosAsociados");
	}
	
	public ActionForward asociarDocumentos(ActionMapping mapping, ActionForm form,
			HttpServletRequest request, HttpServletResponse response) throws Exception {
		
		resetConsultaDocumentos(form, request);
		
		String index = request.getParameter("index");
		
		Usuario usuarioLogin = (Usuario)request.getSession().getAttribute(SessionConstants.SGD_USUARIO_SESION_ACTIVO);
		
		List<ExpedienteSTDBean> lstExpediente = (ArrayList<ExpedienteSTDBean>)request.getSession().getAttribute(SessionConstants.LISTA_EXPEDIENTES_MOSTRAR);
		ExpedienteSTDBean expedienteSTDBean = (ExpedienteSTDBean) lstExpediente.get(Integer.parseInt(index));
		
		AdministracionDocumentoForm formdoc = (AdministracionDocumentoForm)form;
		formdoc.setCodTipoVista(Constants.VISTA_EXPEDIENTE_DOCUMENTOS_SIN_ASOCIAR);
		formdoc.setCodigoExpediente(expedienteSTDBean.getCodigoExpediente());
		formdoc.setNumeroExpediente(expedienteSTDBean.getNumeroExpediente());
		
//		request.getSession().setAttribute(SessionConstants.EXPEDIENTE_EDITADO, expedienteSTDBean);
		request.getSession().removeAttribute(SessionConstants.LISTA_DOCUMENTOS_SIN_EXPEDIENTE_ASOCIADO);
		
		String tipoBusqueda = (String)request.getSession().getAttribute(SessionConstants.TIPO_BUSQUEDA);
		if(tipoBusqueda==null)
			tipoBusqueda = Constants.BUSQUEDA_PERSONAL;
		request.getSession().setAttribute(SessionConstants.TIPO_BUSQUEDA, tipoBusqueda);
		formdoc.setTipoBusqueda(tipoBusqueda);
		
		long fechFin = (new java.util.Date()).getTime();
		SimpleDateFormat formato = new SimpleDateFormat("yyyy");
		formdoc.setFechaInicioDocumentoBusq("01/01/"+formato.format(new Date()));
		formdoc.setFechaFinDocumentoBusq(Util.getDateAsStr(new java.util.Date(fechFin)));
		
		formdoc.setDeOficinaBusq(usuarioLogin.getEncargaturaPerfil().getCodArea());
		formdoc.setParaOficinaBusq(usuarioLogin.getEncargaturaPerfil().getCodArea());
		
		VariablesFacade variablesFacade = new VariablesFacade();
		ArrayList lstUnidadOrigen = variablesFacade.getOficina();
		ArrayList lstUsuariosUnidadOrigen = variablesFacade.getEmpleadoAreaConsultas(usuarioLogin.getEncargaturaPerfil().getCodArea());
		ArrayList lstUsuariosUnidadDestino = variablesFacade.getEmpleadoAreaConsultas(usuarioLogin.getEncargaturaPerfil().getCodArea());

		request.getSession().setAttribute(SessionConstants.LISTA_CONSULTAS_OFICINAS, lstUnidadOrigen);
		request.getSession().setAttribute(SessionConstants.LISTA_CONSULTAS_EMPLEADOS_ORIGEN, lstUsuariosUnidadOrigen);
		request.getSession().setAttribute(SessionConstants.LISTA_CONSULTAS_EMPLEADOS_DESTINO, lstUsuariosUnidadDestino);
		
		return mapping.findForward("listadoDocumentosSinExpediente");
	}
	
	public ActionForward grabarExpediente(ActionMapping mapping, ActionForm form,
			HttpServletRequest request, HttpServletResponse response) throws Exception {
		
		Usuario usuarioLogin = (Usuario)request.getSession().getAttribute(SessionConstants.SGD_USUARIO_SESION_ACTIVO);
		
		AdministracionDocumentoForm formdoc = (AdministracionDocumentoForm)form;
		ExpedienteSTDBean expediente = new ExpedienteSTDBean();
		expediente.setAccion(Integer.parseInt(Constants.ACCION_GRABAR));
		expediente.setCodigoExpediente(formdoc.getCodigoExpediente());
		expediente.setNumeroExpediente(formdoc.getNumeroExpediente());
		expediente.setFechaExpediente(formdoc.getFechaExpediente());
		expediente.setCodigoOficina(formdoc.getCodigoOficina());
		expediente.setCodigoEstado(formdoc.getCodigoEstado());
		expediente.setAsuntoExpediente(formdoc.getAsuntoExpediente());
		expediente.setUsuario(usuarioLogin);
		
		SQLExpedienteSTDDAO sqlExpedienteSTDDAO = new SQLExpedienteSTDDAO();
		RespuestaVO respuestaVO = sqlExpedienteSTDDAO.grabarExpediente(expediente);
		
		if(formdoc.getCodigoExpediente().equals(0L)){
			formdoc.setNumeroExpediente(respuestaVO.getNumeroExpediente());
		}
		
		formdoc.setCodigoExpediente(respuestaVO.getCodigoExpediente());
		
		return buscarExpedientesSTD(mapping, formdoc, request, response);
		
//		return mapping.findForward("listadoExpedientesSTD");
	}
	
	public ActionForward cerrarExpediente(ActionMapping mapping, ActionForm form,
			HttpServletRequest request, HttpServletResponse response) throws Exception {
		
		Usuario usuarioLogin = (Usuario)request.getSession().getAttribute(SessionConstants.SGD_USUARIO_SESION_ACTIVO);
		
		AdministracionDocumentoForm formdoc = (AdministracionDocumentoForm)form;
		ExpedienteSTDBean expediente = new ExpedienteSTDBean();
		expediente.setAccion(Integer.parseInt(Constants.ACCION_CERRAR));
		expediente.setCodigoExpediente(formdoc.getCodigoExpediente());
		expediente.setNumeroExpediente(formdoc.getNumeroExpediente());
		expediente.setFechaExpediente(formdoc.getFechaExpediente());
		expediente.setCodigoOficina(formdoc.getCodigoOficina());
		expediente.setCodigoEstado(Constants.ESTADO_EXPEDIENTE_CERRADO);
		expediente.setAsuntoExpediente(formdoc.getAsuntoExpediente());
		expediente.setUsuario(usuarioLogin);
		
		SQLExpedienteSTDDAO sqlExpedienteSTDDAO = new SQLExpedienteSTDDAO();
		RespuestaVO respuestaVO = sqlExpedienteSTDDAO.grabarExpediente(expediente);
		
		formdoc.setCodigoEstado(Constants.ESTADO_EXPEDIENTE_CERRADO);
		
		return buscarExpedientesSTD(mapping, formdoc, request, response);
//		return mapping.findForward("edicionExpediente");
	}
	
	public ActionForward anularExpediente(ActionMapping mapping, ActionForm form,
			HttpServletRequest request, HttpServletResponse response) throws Exception {
		
		Usuario usuarioLogin = (Usuario)request.getSession().getAttribute(SessionConstants.SGD_USUARIO_SESION_ACTIVO);
		
		AdministracionDocumentoForm formdoc = (AdministracionDocumentoForm)form;
		ExpedienteSTDBean expediente = new ExpedienteSTDBean();
		expediente.setAccion(Integer.parseInt(Constants.ACCION_ANULAR));
		expediente.setCodigoExpediente(formdoc.getCodigoExpediente());
		expediente.setNumeroExpediente(formdoc.getNumeroExpediente());
		expediente.setFechaExpediente(formdoc.getFechaExpediente());
		expediente.setCodigoOficina(formdoc.getCodigoOficina());
		expediente.setCodigoEstado(Constants.ESTADO_EXPEDIENTE_ANULADO);
		expediente.setAsuntoExpediente(formdoc.getAsuntoExpediente());
		expediente.setUsuario(usuarioLogin);
		
		SQLExpedienteSTDDAO sqlExpedienteSTDDAO = new SQLExpedienteSTDDAO();
		RespuestaVO respuestaVO = sqlExpedienteSTDDAO.grabarExpediente(expediente);
		
		formdoc.setCodigoEstado(Constants.ESTADO_EXPEDIENTE_ANULADO);
		
		return mapping.findForward("edicionExpediente");
	}
	
	public ActionForward reaperturarExpediente(ActionMapping mapping, ActionForm form,
			HttpServletRequest request, HttpServletResponse response) throws Exception {
		
		Usuario usuarioLogin = (Usuario)request.getSession().getAttribute(SessionConstants.SGD_USUARIO_SESION_ACTIVO);
		
		AdministracionDocumentoForm formdoc = (AdministracionDocumentoForm)form;
		ExpedienteSTDBean expediente = new ExpedienteSTDBean();
		expediente.setAccion(Integer.parseInt(Constants.ACCION_REAPERTURAR));
		expediente.setCodigoExpediente(formdoc.getCodigoExpediente());
		expediente.setNumeroExpediente(formdoc.getNumeroExpediente());
		expediente.setFechaExpediente(formdoc.getFechaExpediente());
		expediente.setCodigoOficina(formdoc.getCodigoOficina());
		expediente.setCodigoEstado(Constants.ESTADO_EXPEDIENTE_ABIERTO);
		expediente.setAsuntoExpediente(formdoc.getAsuntoExpediente());
		expediente.setUsuario(usuarioLogin);
		
		SQLExpedienteSTDDAO sqlExpedienteSTDDAO = new SQLExpedienteSTDDAO();
		RespuestaVO respuestaVO = sqlExpedienteSTDDAO.grabarExpediente(expediente);
		
		formdoc.setCodigoEstado(Constants.ESTADO_EXPEDIENTE_ABIERTO);
		
		return buscarExpedientesSTD(mapping, formdoc, request, response);
//		return mapping.findForward("edicionExpediente");
	}
	
	
	public void resetConsultaDocumentos(ActionForm form,HttpServletRequest request){
		AdministracionDocumentoForm formdoc = (AdministracionDocumentoForm)form;
		formdoc.setFlgBusquedaAvanzada(Constants.VALOR_DEFAULT_CERO);
		formdoc.setCodMovimientoBusq(Constants.TIPO_MOVIMIENTO_ENTRADA);
		formdoc.setNumProveidoBusq(new String());
		formdoc.setCodTipoDocumentoBusq(Constants.VALOR_DEFAULT_CERO);
		formdoc.setNumDocumentoBusq(new String());		
		formdoc.setFechaInicioRegistroBusq(new String());
		formdoc.setFechaFinRegistroBusq(new String());
		formdoc.setEstadoDocumentoBusq(Constants.VALOR_DEFAULT_CERO);
		formdoc.setFechaInicioDocumentoBusq(new String());
		formdoc.setFechaFinDocumentoBusq(new String());
		formdoc.setFlgDocumentosAnuladosBusq(Constants.NO);
		formdoc.setHidFlgDocumentosAnuladosBusq(Constants.NO);
		formdoc.setAsuntoBusq(new String());
		formdoc.setReferenciaBusq(new String());
		formdoc.setDeClienteBusq(Constants.VALOR_DEFAULT_VACIO);
		formdoc.setDeEmpleadoClienteBusq(Constants.VALOR_DEFAULT_VACIO);
		formdoc.setDeOficinaBusq(Constants.VALOR_DEFAULT_CERO);
		formdoc.setDeEmpleadoOficinaBusq(Constants.VALOR_DEFAULT_CERO);
		formdoc.setParaClienteBusq(Constants.VALOR_DEFAULT_VACIO);
		formdoc.setParaEmpleadoClienteBusq(Constants.VALOR_DEFAULT_VACIO);
		formdoc.setParaOficinaBusq(Constants.VALOR_DEFAULT_CERO);
		formdoc.setDeEmpleadoOficinaBusq(Constants.VALOR_DEFAULT_CERO);
		request.getSession().removeAttribute(SessionConstants.LISTA_DOCUMENTOS_MOSTRAR);
	}
	
	public ActionForward exportarExcel(ActionMapping mapping, ActionForm form,
			HttpServletRequest request, HttpServletResponse response) throws Exception {
		return mapping.findForward("exportarListadoExpedientesExcel");
	}
}
